![EBSのボリュームサイズを変更する](https://devio2023-media.developers.io/wp-content/uploads/2022/08/amazon-ebs.png)
EBSのボリュームサイズを変更する
EBSとボリュームサイズ
EBSは正式名称を「Amazon Elastic Block Store」と言います。 名前の表すとおり、スケールの伸縮性が特徴の1つでスループット以外にもサイズの変更も容易です。
今回はEBSボリュームのサイズを変更する方法を整理していきます。
作業の整理
今回使用するのはAmazon Linux 2で起動したEC2インスタンスです。
すでにEBSボリュームはアタッチ済みで、XFSでファイルシステムを構築後に/data
に追加のボリュームをマウントしています。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 1G 0 disk /data
サイズは1GiBでこれを今回は10GiBまで拡張します。
手順は以下の通りです。
- EBSボリュームの変更
- XFSのファイルシステムの拡張
今回はパーティションも区切っていないので、パーティションの拡張は行いません。
Windowsについては以下の記事が参考になるかと思います。
EBSボリュームの変更
今回はマネージメントコンソールから変更します。
「アクション」より「ボリュームサイズの変更」を選択します。
今回は説明の都合上簡略化しましたが、ファイルシステムの変更に失敗した場合などを考え、予めスナップショットを作成しておくのが良いと思います。
サイズを10GiBに変更します。
変更の確認画面が出てくるので「変更」ボタンを押します。
変更リクエストが成功するとマネージメントコンソール上でもサイズが10GiBになります。
ファイルシステムの拡張
EBSボリュームのサイズ変更が成功したみたいなので、EC2側からも確認します。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 10G 0 disk /data $ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 474M 0 474M 0% /dev tmpfs tmpfs 483M 0 483M 0% /dev/shm tmpfs tmpfs 483M 356K 483M 1% /run tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.6G 6.5G 20% / /dev/xvdf xfs 1014M 40M 975M 4% /data
「/dev/xvdf」のサイズが10GiBに変わっていました。
ファイルシステムの拡張を行います。
今回はXFSを使用しているのでxfs_growfs
を使用します。
EXT4ならresize2fs
でリサイズできます。
$ sudo xfs_growfs -d /data meta-data=/dev/xvdf isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 262144 to 2621440
ファイルシステムの拡張が完了したので、ファイルシステムのサイズを再確認します。
$ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 474M 0 474M 0% /dev tmpfs tmpfs 483M 0 483M 0% /dev/shm tmpfs tmpfs 483M 356K 483M 1% /run tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.6G 6.5G 20% / /dev/xvdf xfs 10G 106M 9.9G 2% /data
無事に拡張成功したみたいです。
付録
拡張ができるということは、逆もできるのか気になったのでボリュームサイズを1GiBに戻そうとしたところ以下のような感じで警告がでて、ボリュームサイズを減らすことはできませんでした。
誤ってボリュームサイズを小さくするとデータの喪失などにつながるので、このほうが安全だと思います。 ボリュームサイズを小さくしたい場合は新しくEBSボリュームを作成し、EC2などでマウントしてファイルをコピーするのがよいと思います。